Android内存管理基础:Dalvik/ART运行时与内存分配机制
📚 共计 30 章节
01
Android内存管理全景
为什么需要关注内存?Android内存模型概览,从Dalvik到ART的演进之路。
全景
演进
02
Java堆与Native堆
Java堆的结构与特点,Native堆的管理方式,两者如何协同工作。
堆结构
协同
03
Dalvik虚拟机架构
Dalvik的设计哲学,基于寄存器的指令集,DEX文件格式解析。
Dalvik
DEX
04
Dalvik内存分配机制
dlmalloc与LinearAlloc,对象分配流程,TLAB(线程本地分配缓冲区)原理。
分配器
TLAB
05
Dalvik垃圾回收基础
Mark-Sweep算法,GC触发条件,STW(Stop-The-World)现象。
GC
STW
06
Dalvik GC优化
Concurrent GC,Partial GC,Young Generation概念,GC日志分析。
并发GC
分代
07
ART运行时架构
AOT编译与JIT编译,混合编译模式,ART的核心优势。
AOT
JIT
08
ART内存分配机制
RosAlloc分配器,Bump Pointer分配器,大对象分配策略。
RosAlloc
大对象
09
ART垃圾回收基础
CMS与G1算法在ART中的实现,并发标记与清理。
CMS
G1
10
ART GC优化
Generational GC,Compact GC,GC调优参数。
分代GC
调优
11
内存泄漏检测
LeakCanary原理,MAT工具使用,hprof文件分析。
LeakCanary
MAT
12
内存抖动与卡顿
内存抖动的原因,Allocation Tracker使用,如何避免频繁GC。
抖动
Allocation Tracker
13
Bitmap内存管理
Bitmap内存模型,inBitmap复用,Bitmap压缩与缓存策略。
Bitmap
复用
14
图片加载框架
Glide与Fresco的内存优化策略,三级缓存原理。
Glide
Fresco
15
WebView内存管理
WebView的内存泄漏场景,多进程方案,内存释放技巧。
WebView
多进程
16
Native内存管理
C/C++内存分配,malloc/free与new/delete,Valgrind与AddressSanitizer。
Native
Sanitizer
17
内存映射文件
mmap原理,匿名共享内存,Ashmem驱动。
mmap
Ashmem
18
匿名共享内存(Ashmem)
Ashmem的使用场景,MemoryFile API,跨进程内存共享。
Ashmem
IPC
19
ION内存分配器
ION框架,DMA-BUF,图形缓冲区管理。
ION
DMA-BUF
20
内存压缩技术
ZRAM与ZSWAP,Swap与kswapd,内存压力管理。
ZRAM
Swap
21
Low Memory Killer
LMK原理,oom_adj分数,进程优先级与回收策略。
LMK
oom_adj
22
Android内存阈值
不同设备的内存等级,ActivityManager内存限制,largeHeap属性。
阈值
largeHeap
23
内存分析工具
dumpsys meminfo,procrank,smem,top命令详解。
dumpsys
procrank
24
Profile Heap与Allocation Tracker
Android Studio Profiler使用,内存快照对比。
Profiler
快照
25
内存优化实战
常见内存问题案例,优化前后对比,性能数据解读。
实战
案例
26
内存监控与告警
自定义内存监控,阈值设置,线上问题排查。
监控
告警
27
Dalvik与ART对比
性能对比,内存占用对比,兼容性考量。
对比
兼容性
28
Android 12+内存新特性
App Hibernation,Memory Advice API,后台限制增强。
新特性
Hibernation
29
内存与性能平衡
时间换空间,空间换时间,缓存策略选择。
平衡
缓存
30
课程总结与进阶
核心知识点回顾,推荐书籍与源码,持续学习路径。
总结
进阶